package com.ehome.poct.core.dao.entity.order;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ehome.mybatisplus.autoconfigure.BaseEntityOld;
import com.ehome.poct.base.api.enums.BusinessOrderTypeEnums;
import com.ehome.poct.base.api.enums.CheckStatusEnums;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 检测订单
 */
@Data
@Accessors(chain = true)
@TableName(value = "test_order")
public class TestOrderDO extends BaseEntityOld<TestOrderDO> {
    /**
     * 主键ID
     */
    @TableId(value = "test_order_id")
    private Long testOrderId;

    /**
     * 检测订单号
     */
    @TableField(value = "test_order_no")
    private String testOrderNo;

    /**
     * 外部订单号
     */
    @TableField(value = "out_order_no")
    private String outOrderNo;

    /**
     * 交易流水号
     */
    @TableField(value = "out_transaction_no")
    private String outTransactionNo;

    /**
     * 订单类型
1：常规支付订单
5：免费订单
     */
    @TableField(value = "order_type")
    private Integer orderType;

    /**
     * 订单名称
     */
    @TableField(value = "`name`")
    private String name;

    /**
     * 下单用户（诊所）
     */
    @TableField(value = "clinic_id")
    private Long clinicId;

    /**
     * 订单金额
     */
    @TableField(value = "total_money")
    private BigDecimal totalMoney;

    /**
     * 应付金额
     */
    @TableField(value = "pay_money")
    private BigDecimal payMoney;

    /**
     * 折扣金额
     */
    @TableField(value = "discount_money")
    private BigDecimal discountMoney;

    /**
     * 优惠券金额
     */
    @TableField(value = "coupon_money")
    private BigDecimal couponMoney;

    /**
     * 活动金额（满减，平台赠送等等）
     */
    @TableField(value = "promotion_money")
    private BigDecimal promotionMoney;

    /**
     * 运费金额
     */
    @TableField(value = "freight_money")
    private BigDecimal freightMoney;

    /**
     * 支付渠道
     */
    @TableField(value = "pay_channel")
    private Integer payChannel;

    /**
     * 支付方式【0:支付宝支付; 5:微信支付; 10:云闪付支付; 20:银行卡支付;25:苏中优惠卷支付】
     */
    @TableField(value = "pay_type")
    private Integer payType;

    /**
     * 订单来源（1 金标仪app ,2 网页 , 4 血液分析仪，10苏中 10之后都是合作方设备的订单 ）
     */
    @TableField(value = "source_type")
    private Integer sourceType;

    /**
     * 交易类型【JSAPI:微信公众号支付/微信小程序支付/支付宝服务窗/云闪付支付; NATIVE:扫码支付(支付宝); APP:APP支付(微信); MWEB:H5支付; APP-MINI:APP跳转小程序支付(微信、云闪付、支付宝)】
     */
    @TableField(value = "trade_type")
    private Integer tradeType;

    /**
     * 订单状态订单状态【0:未支付;2:已冲正;3:已转退款;5:支付关闭;8:支付撤消;10:支付失败;20支付成功;22:支付完结】
     */
    @TableField(value = "`status`")
    private Integer status;

    /**
     * 支付时间
     */
    @TableField(value = "pay_time")
    private LocalDateTime payTime;

    /**
     * 付款人id (openid,只有微信支付方式有值)
     */
    @TableField(value = "pay_user_code")
    private String payUserCode;

    /**
     * 备注
     */
    @TableField(value = "note")
    private String note;

    /**
     * 是否已支付
     */
    @TableField(value = "is_pay")
    private Boolean isPay;

    /**
     * 分账状态（0:未分账; 5:处理中; 10:分账失败; 15:分账成功）
     */
    @TableField(value = "profit_bill_status")
    private Integer profitBillStatus;
    /**
     * 患者id
     */
    @TableField(value = "patient_id")
    private Long patientId;


    @TableField(value = "check_status")
    private CheckStatusEnums checkStatus;

    @TableField(value = "business_order_type")
    private BusinessOrderTypeEnums businessOrderType;
}